package com.example.demo2;

import org.junit.Test;

public class SingletonTest2 {


    /**
     * 引用的地址 不一样了  所以是线程不安全的
     */
    @Test
    public void test1() {
        for (int i = 0; i < 100; i++) {
            new Thread(() -> {
                SingletonDemo2 singletonDemo2 = SingletonDemo2.getInstance();
                System.out.println("当前线程的名称是 = " + Thread.currentThread().getName() + "--------->" + singletonDemo2);
            }).start();
        }

    }

    /**
     * 使用了 synchronized 关键字 线程安全
     */
    @Test
    public void test2() {
        for (int i = 0; i < 500; i++) {
            new Thread(() -> {
                SingletonDemo3 singletonDemo2 = SingletonDemo3.getInstance();
                System.out.println("当前线程的名称是 = " + Thread.currentThread().getName() + "--------->" + singletonDemo2);
            }).start();
        }

    }



}
